package cn.gz.zoomtech.common;

public class ByteUtil {


	/**
	 * 固定长度字符串，不足长度则右补二进制0，此类型字符串定义的最大长度不包括结束符’\0’的长度
	 * @param str
	 * @param len
	 * @return
	 */
	public static byte[] getBytes(String str,int len){
		
		byte[] bytes = null;
		if(str!=null){
			int strLen = str.length();
			if(strLen<len){
				bytes = new byte[len];
				byte[] b = str.getBytes();
				for(int i=0;i<b.length;i++){
					bytes[i] = b[i];
				}
				for(int i=b.length;i<bytes.length;i++){
					bytes[i] = '\0';
				}
			}else if(strLen==len){
				bytes = str.getBytes();
			}else{
				bytes = new byte[len];
				byte[] b = str.getBytes();
				for(int i=0;i<len;i++){
					bytes[i] = b[i];
				}
			}
		}else{
			bytes = new byte[len];
			for(int i=0;i<bytes.length;i++){
				bytes[i] = '\0';
			}
		}
		return bytes;
	}
	
	
	/**
	 * 清除数据
	 * @param str
	 * @param len
	 * @return
	 */
	public static void clearBytes(byte[] bytes){
		for(int i=0;i<bytes.length;i++){
			bytes[i]=0;
		}
	}
	
	/**
	 * 将byte[]转换成整数
	 * */
	public static int toInt(byte[] b) {
		int sz = b.length;
		if (b.length > 4) sz = 4;
		int result = 0;
		for (int i = 0; i < sz; i++) {
			result |= 0x00FF & b[i];
			if (i < sz - 1)
				result = result << 8;
		}
		return result;
	}
	
	/**
	 * 把两个byte数组合并起来
	 * @param bytes1
	 * @param bytes2
	 * @return
	 */
	public static byte[] joinBytes(byte[] bytes1,byte[] bytes2){
		byte[] bytes = new byte[bytes1.length + bytes2.length];
		int index = 0;
		for(; index<bytes1.length; index++){
			bytes[index] = bytes1[index];
		}
		for(int i=0;i<bytes2.length;i++,index++){
			bytes[index] = bytes2[i];
		}
		return bytes;
	}

	public static void main(String args[]){
		System.out.println(new String(ByteUtil.getBytes("", 12)));

	}
	
//	*************************************
//	小端格式转换工具
//	*************************************
	
	
	
	
	


}
